﻿// -------------------------------------------------------------------------
//    @FileName         :    NFOnlineRoleService.cpp
//    @Author           :    Gao.Yi
//    @Date             :    2025-08-26
//    @Email			:    445267987@qq.com
//    @Module           :    NFOnlineRoleService
//    @Desc             :
//
// -------------------------------------------------------------------------

#include "NFOnlineRoleService.h"

#include "NFOnlineRole.h"

NFOnlineRole* NFOnlineRoleService::GetOnlineRole(uint64_t roleId)
{
    return NFOnlineRole::GetObjByHashKey(roleId);
}

NFOnlineRole* NFOnlineRoleService::CreateOnlineRole(uint64_t roleId)
{
    NFOnlineRole* pOnlineRole = GetOnlineRole(roleId);
    if (pOnlineRole)
    {
        LOG_ERR(roleId, -1, "OnlineRole already exist, roleId:{}", roleId);
        return pOnlineRole;
    }

    pOnlineRole = NFOnlineRole::CreateObjByHashKey(roleId);
    CHECK_NULL_RE_NULL(roleId, pOnlineRole, "NFOnlineRole::CreateObjByHashKey Failed, roleId:{}", roleId);

    pOnlineRole->SetRoleId(roleId);
    return pOnlineRole;
}

int NFOnlineRoleService::RemoveOnlineRole(NFOnlineRole* pOnlineRole)
{
    CHECK_NULL(0, pOnlineRole);
    LOG_INFO(pOnlineRole->GetRoleId(), "RemoveOnlineRole, roleId:{}", pOnlineRole->GetRoleId());
    NFOnlineRole::DestroyObj(pOnlineRole);
    return 0;
}
